from tkinter import *
from tkinter import messagebox,ttk
from PIL import ImageTk
import requests
import re

###no
# 获取签名图片
def download():
    startUrl = "http://www.uustv.com/"
    # 获取用户输入
    name = entry.get()
    # 获取样式
    style = numberChosen.current()  # 获取索引
    # 去空格
    name = name.strip()
    if name == "":
        messagebox.showinfo('提示',"请输入名字")
    else:
        font = {
            '0':'jfcs.ttf',# 个性签名
            '1':'qmt.ttf',# 连笔签名
            '2':'bzcs.ttf',# 潇洒签名
            '3':'lfc.ttf',# 草体签名
            '4':'haku.ttf',# 和文签名
            '5':'zql.ttf',# 商务签名
            '6':'yqk.ttf'# 可爱签名
        }
        # 模拟网页发送数据
        data={
            'word':name,
            'sizes':'60',
            'fonts': font[str(style)],
            'fontclor':'#000000'
        }
        result = requests.post(startUrl, data=data).content
        reg = '<div class="tu">.*<img src="(.*?)"/></div>'
        result = bytes.decode(result)  # byte转换成string
        img_url = startUrl + re.findall(reg, result)
        # name = 'tmp'  # 避免了源代码在win下无法正常写入文件的问题

        response = requests.get(img_url).content
        # 保存图片
        with open('{}.gif'.format(name), 'wb') as f:
            f.write(response)

        im = Image.open('{}.gif'.format(name))
        im.show()

        print("打开！")

        # 显示图片
        bm = ImageTk.PhotoImage(file='{}.gif'.format(name))
        lable2 = Label(root,image=bm)
        lable2.bm = bm
        # columnspan 组件所跨越的列数
        lable2.grid(row=2,columnspan=4)
# 创建窗口
root = Tk()
# 获取屏幕的宽与高
sw = root.winfo_screenwidth()
sh = root.winfo_screenheight()
# 标题
root.title("签名设计")
# 窗口大小 小写的x
root.geometry("600x300")
# 窗口出现位置 px
# root.geometry("+500+300")  # 目前是写死的
root.geometry("+%d+%d"%((sw-600)/2,(sh-300)/2))
# 窗口图标
#root.iconbitmap('1.ico')
# 标签控件
lable = Label(root,text="签名:",font=('华文行楷',20),fg='red')
# place pack 位置 grid 网格式布局
# 定位控件
lable.grid(row=0,column=0)
# 输入框
entry = Entry(root,width=20,font=('微软雅黑',15))
entry.grid(row=0,column=1)
entry.focus() #当程序运行时，光标默认出现的位置
#下拉标签
lable3 = Label(root,text='样式:',font=('华文行楷',20),fg='red')
lable3.grid(row=0,column=2)

# 下拉列表
number = StringVar()
numberChosen = ttk.Combobox(root,width=10,font=('华文行楷',20),textvariable=number,state='readonly')
numberChosen['values']=('个性签','连笔签','潇洒签','草体签','合文签','商务签','可爱签')
numberChosen.grid(row=0,column=3)
numberChosen.current(0)
# 点击按钮  command 按钮触发函数
button = Button(root,text='设计签名',font=('微软雅黑',10),command = download)
# button['width'] = 10
# button['height'] = 1
# 对齐方式  E,W   N,S
button.grid(row=1,column=3,sticky=E)

# 显示窗口
root.mainloop()